package org.deltaset.meta;

import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.List;

/**
 *
 * @author dmakariev
 */
public interface MetaAction extends Serializable {

    Class getEntityClass();

    boolean getHasParameter();

    boolean getIsFactory();
    
    boolean isFinder();

    boolean getIsReturningEntity();

    boolean getIsReturningVoid();

    String getMethodName();

    // MetaParameter getParameter();
    boolean isEnableWarn();

    Method getMethod();

    Method getDisableMethod();

    Method getHideMethod();

    boolean isContext();

    Class getExecuteClass();

    boolean isEntityMember();

    public Object getNewParameterInstance();

    public Object[] prepareParameters(Object parameterValue);

    public List<MetaField> getParameterMetaFields();
}
